home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / prog_pas / sk210f.zip / TESTBETW.PAS < prev    next >
Pascal/Delphi Source File  |  1992-05-07  |  15KB  |  384 lines

  1. {$I SHDEFINE.INC}
  2.  
  3. {$I SHUNITSW.INC}
  4.  
  5. unit TestBetw;
  6. {
  7.                To test the ShUtilPk unit (BETW functions)
  8.  
  9.                   Copyright 1991 Madison & Associates
  10.                           All Rights Reserved
  11.  
  12.          This program source file and the associated executable
  13.          file may be  used and distributed  only in  accordance
  14.          with the  provisions  described  on  the title page of
  15.                   the accompanying documentation file
  16.                               SKYHAWK.DOC
  17. }
  18.  
  19. interface
  20.  
  21. uses
  22.   ShUtilPk,
  23.   TpCrt,
  24.   TpDos,
  25.   TpString;
  26.  
  27. procedure BetwTest;
  28.  
  29. implementation
  30.  
  31. procedure BetwTest;
  32.  
  33. const
  34.   TA4 : array[1..81,1..3] of LongInt =
  35.          ((  $7777DDDD,  $8888EEEE,   $9999FFFF  ), {HiWord state = 1}
  36.           (  $7777DDDD,  $8888EEEE,   $9999EEEE  ),
  37.           (  $7777DDDD,  $8888EEEE,   $9999DDDD  ),
  38.           (  $7777DDDD,  $8888DDDD,   $9999EEEE  ),
  39.           (  $7777DDDD,  $8888DDDD,   $9999DDDD  ),
  40.           (  $7777DDDD,  $8888DDDD,   $9999CCCC  ),
  41.           (  $7777DDDD,  $8888CCCC,   $9999DDDD  ),
  42.           (  $7777DDDD,  $8888CCCC,   $9999CCCC  ),
  43.           (  $7777DDDD,  $8888CCCC,   $9999BBBB  ),
  44.           (  $7777DDDD,  $8888EEEE,   $8888FFFF  ), {HiWord state = 2}
  45.           (  $7777DDDD,  $8888EEEE,   $8888EEEE  ),
  46.           (  $7777DDDD,  $8888EEEE,   $8888DDDD  ),
  47.           (  $7777DDDD,  $8888DDDD,   $8888EEEE  ),
  48.           (  $7777DDDD,  $8888DDDD,   $8888DDDD  ),
  49.           (  $7777DDDD,  $8888DDDD,   $8888CCCC  ),
  50.           (  $7777DDDD,  $8888CCCC,   $8888DDDD  ),
  51.           (  $7777DDDD,  $8888CCCC,   $8888CCCC  ),
  52.           (  $7777DDDD,  $8888CCCC,   $8888BBBB  ),
  53.           (  $7777DDDD,  $9999EEEE,   $8888FFFF  ), {HiWord state = 3}
  54.           (  $7777DDDD,  $9999EEEE,   $8888EEEE  ),
  55.           (  $7777DDDD,  $9999EEEE,   $8888DDDD  ),
  56.           (  $7777DDDD,  $9999DDDD,   $8888EEEE  ),
  57.           (  $7777DDDD,  $9999DDDD,   $8888DDDD  ),
  58.           (  $7777DDDD,  $9999DDDD,   $8888CCCC  ),
  59.           (  $7777DDDD,  $9999CCCC,   $8888DDDD  ),
  60.           (  $7777DDDD,  $9999CCCC,   $8888CCCC  ),
  61.           (  $7777DDDD,  $9999CCCC,   $8888BBBB  ),
  62.           (  $7777DDDD,  $7777EEEE,   $8888FFFF  ), {HiWord state = 4}
  63.           (  $7777DDDD,  $7777EEEE,   $8888EEEE  ),
  64.           (  $7777DDDD,  $7777EEEE,   $8888DDDD  ),
  65.           (  $7777DDDD,  $7777DDDD,   $8888EEEE  ),
  66.           (  $7777DDDD,  $7777DDDD,   $8888DDDD  ),
  67.           (  $7777DDDD,  $7777DDDD,   $8888CCCC  ),
  68.           (  $7777DDDD,  $7777CCCC,   $8888DDDD  ),
  69.           (  $7777DDDD,  $7777CCCC,   $8888CCCC  ),
  70.           (  $7777DDDD,  $7777CCCC,   $8888BBBB  ),
  71.           (  $7777DDDD,  $7777EEEE,   $7777FFFF  ), {HiWord state = 5}
  72.           (  $7777DDDD,  $7777EEEE,   $7777EEEE  ),
  73.           (  $7777DDDD,  $7777EEEE,   $7777DDDD  ),
  74.           (  $7777DDDD,  $7777DDDD,   $7777EEEE  ),
  75.           (  $7777DDDD,  $7777DDDD,   $7777DDDD  ),
  76.           (  $7777DDDD,  $7777DDDD,   $7777CCCC  ),
  77.           (  $7777DDDD,  $7777CCCC,   $7777DDDD  ),
  78.           (  $7777DDDD,  $7777CCCC,   $7777CCCC  ),
  79.           (  $7777DDDD,  $7777CCCC,   $7777BBBB  ),
  80.           (  $7777DDDD,  $7777EEEE,   $6666FFFF  ), {HiWord state = 6}
  81.           (  $7777DDDD,  $7777EEEE,   $6666EEEE  ),
  82.           (  $7777DDDD,  $7777EEEE,   $6666DDDD  ),
  83.           (  $7777DDDD,  $7777DDDD,   $6666EEEE  ),
  84.           (  $7777DDDD,  $7777DDDD,   $6666DDDD  ),
  85.           (  $7777DDDD,  $7777DDDD,   $6666CCCC  ),
  86.           (  $7777DDDD,  $7777CCCC,   $6666DDDD  ),
  87.           (  $7777DDDD,  $7777CCCC,   $6666CCCC  ),
  88.           (  $7777DDDD,  $7777CCCC,   $6666BBBB  ),
  89.           (  $7777DDDD,  $6666EEEE,   $7777FFFF  ), {HiWord state = 7}
  90.           (  $7777DDDD,  $6666EEEE,   $7777EEEE  ),
  91.           (  $7777DDDD,  $6666EEEE,   $7777DDDD  ),
  92.           (  $7777DDDD,  $6666DDDD,   $7777EEEE  ),
  93.           (  $7777DDDD,  $6666DDDD,   $7777DDDD  ),
  94.           (  $7777DDDD,  $6666DDDD,   $7777CCCC  ),
  95.           (  $7777DDDD,  $6666CCCC,   $7777DDDD  ),
  96.           (  $7777DDDD,  $6666CCCC,   $7777CCCC  ),
  97.           (  $7777DDDD,  $6666CCCC,   $7777BBBB  ),
  98.           (  $7777DDDD,  $6666EEEE,   $6666FFFF  ), {HiWord state = 8}
  99.           (  $7777DDDD,  $6666EEEE,   $6666EEEE  ),
  100.           (  $7777DDDD,  $6666EEEE,   $6666DDDD  ),
  101.           (  $7777DDDD,  $6666DDDD,   $6666EEEE  ),
  102.           (  $7777DDDD,  $6666DDDD,   $6666DDDD  ),
  103.           (  $7777DDDD,  $6666DDDD,   $6666CCCC  ),
  104.           (  $7777DDDD,  $6666CCCC,   $6666DDDD  ),
  105.           (  $7777DDDD,  $6666CCCC,   $6666CCCC  ),
  106.           (  $7777DDDD,  $6666CCCC,   $6666BBBB  ),
  107.           (  $7777DDDD,  $6666EEEE,   $5555FFFF  ), {HiWord state = 9}
  108.           (  $7777DDDD,  $6666EEEE,   $5555EEEE  ),
  109.           (  $7777DDDD,  $6666EEEE,   $5555DDDD  ),
  110.           (  $7777DDDD,  $6666DDDD,   $5555EEEE  ),
  111.           (  $7777DDDD,  $6666DDDD,   $5555DDDD  ),
  112.           (  $7777DDDD,  $6666DDDD,   $5555CCCC  ),
  113.           (  $7777DDDD,  $6666CCCC,   $5555DDDD  ),
  114.           (  $7777DDDD,  $6666CCCC,   $5555CCCC  ),
  115.           (  $7777DDDD,  $6666CCCC,   $5555BBBB  ));
  116.  
  117.   TA4A : array[1..81,1..3] of LongInt =
  118.          ((  $777DDDD,  $888EEEE,   $999FFFF  ), {HiWord state = 1}
  119.           (  $777DDDD,  $888EEEE,   $999EEEE  ),
  120.           (  $777DDDD,  $888EEEE,   $999DDDD  ),
  121.           (  $777DDDD,  $888DDDD,   $999EEEE  ),
  122.           (  $777DDDD,  $888DDDD,   $999DDDD  ),
  123.           (  $777DDDD,  $888DDDD,   $999CCCC  ),
  124.           (  $777DDDD,  $888CCCC,   $999DDDD  ),
  125.           (  $777DDDD,  $888CCCC,   $999CCCC  ),
  126.           (  $777DDDD,  $888CCCC,   $999BBBB  ),
  127.           (  $777DDDD,  $888EEEE,   $888FFFF  ), {HiWord state = 2}
  128.           (  $777DDDD,  $888EEEE,   $888EEEE  ),
  129.           (  $777DDDD,  $888EEEE,   $888DDDD  ),
  130.           (  $777DDDD,  $888DDDD,   $888EEEE  ),
  131.           (  $777DDDD,  $888DDDD,   $888DDDD  ),
  132.           (  $777DDDD,  $888DDDD,   $888CCCC  ),
  133.           (  $777DDDD,  $888CCCC,   $888DDDD  ),
  134.           (  $777DDDD,  $888CCCC,   $888CCCC  ),
  135.           (  $777DDDD,  $888CCCC,   $888BBBB  ),
  136.           (  $777DDDD,  $999EEEE,   $888FFFF  ), {HiWord state = 3}
  137.           (  $777DDDD,  $999EEEE,   $888EEEE  ),
  138.           (  $777DDDD,  $999EEEE,   $888DDDD  ),
  139.           (  $777DDDD,  $999DDDD,   $888EEEE  ),
  140.           (  $777DDDD,  $999DDDD,   $888DDDD  ),
  141.           (  $777DDDD,  $999DDDD,   $888CCCC  ),
  142.           (  $777DDDD,  $999CCCC,   $888DDDD  ),
  143.           (  $777DDDD,  $999CCCC,   $888CCCC  ),
  144.           (  $777DDDD,  $999CCCC,   $888BBBB  ),
  145.           (  $777DDDD,  $777EEEE,   $888FFFF  ), {HiWord state = 4}
  146.           (  $777DDDD,  $777EEEE,   $888EEEE  ),
  147.           (  $777DDDD,  $777EEEE,   $888DDDD  ),
  148.           (  $777DDDD,  $777DDDD,   $888EEEE  ),
  149.           (  $777DDDD,  $777DDDD,   $888DDDD  ),
  150.           (  $777DDDD,  $777DDDD,   $888CCCC  ),
  151.           (  $777DDDD,  $777CCCC,   $888DDDD  ),
  152.           (  $777DDDD,  $777CCCC,   $888CCCC  ),
  153.           (  $777DDDD,  $777CCCC,   $888BBBB  ),
  154.           (  $777DDDD,  $777EEEE,   $777FFFF  ), {HiWord state = 5}
  155.           (  $777DDDD,  $777EEEE,   $777EEEE  ),
  156.           (  $777DDDD,  $777EEEE,   $777DDDD  ),
  157.           (  $777DDDD,  $777DDDD,   $777EEEE  ),
  158.           (  $777DDDD,  $777DDDD,   $777DDDD  ),
  159.           (  $777DDDD,  $777DDDD,   $777CCCC  ),
  160.           (  $777DDDD,  $777CCCC,   $777DDDD  ),
  161.           (  $777DDDD,  $777CCCC,   $777CCCC  ),
  162.           (  $777DDDD,  $777CCCC,   $777BBBB  ),
  163.           (  $777DDDD,  $777EEEE,   $666FFFF  ), {HiWord state = 6}
  164.           (  $777DDDD,  $777EEEE,   $666EEEE  ),
  165.           (  $777DDDD,  $777EEEE,   $666DDDD  ),
  166.           (  $777DDDD,  $777DDDD,   $666EEEE  ),
  167.           (  $777DDDD,  $777DDDD,   $666DDDD  ),
  168.           (  $777DDDD,  $777DDDD,   $666CCCC  ),
  169.           (  $777DDDD,  $777CCCC,   $666DDDD  ),
  170.           (  $777DDDD,  $777CCCC,   $666CCCC  ),
  171.           (  $777DDDD,  $777CCCC,   $666BBBB  ),
  172.           (  $777DDDD,  $666EEEE,   $777FFFF  ), {HiWord state = 7}
  173.           (  $777DDDD,  $666EEEE,   $777EEEE  ),
  174.           (  $777DDDD,  $666EEEE,   $777DDDD  ),
  175.           (  $777DDDD,  $666DDDD,   $777EEEE  ),
  176.           (  $777DDDD,  $666DDDD,   $777DDDD  ),
  177.           (  $777DDDD,  $666DDDD,   $777CCCC  ),
  178.           (  $777DDDD,  $666CCCC,   $777DDDD  ),
  179.           (  $777DDDD,  $666CCCC,   $777CCCC  ),
  180.           (  $777DDDD,  $666CCCC,   $777BBBB  ),
  181.           (  $777DDDD,  $666EEEE,   $666FFFF  ), {HiWord state = 8}
  182.           (  $777DDDD,  $666EEEE,   $666EEEE  ),
  183.           (  $777DDDD,  $666EEEE,   $666DDDD  ),
  184.           (  $777DDDD,  $666DDDD,   $666EEEE  ),
  185.           (  $777DDDD,  $666DDDD,   $666DDDD  ),
  186.           (  $777DDDD,  $666DDDD,   $666CCCC  ),
  187.           (  $777DDDD,  $666CCCC,   $666DDDD  ),
  188.           (  $777DDDD,  $666CCCC,   $666CCCC  ),
  189.           (  $777DDDD,  $666CCCC,   $666BBBB  ),
  190.           (  $777DDDD,  $666EEEE,   $555FFFF  ), {HiWord state = 9}
  191.           (  $777DDDD,  $666EEEE,   $555EEEE  ),
  192.           (  $777DDDD,  $666EEEE,   $555DDDD  ),
  193.           (  $777DDDD,  $666DDDD,   $555EEEE  ),
  194.           (  $777DDDD,  $666DDDD,   $555DDDD  ),
  195.           (  $777DDDD,  $666DDDD,   $555CCCC  ),
  196.           (  $777DDDD,  $666CCCC,   $555DDDD  ),
  197.           (  $777DDDD,  $666CCCC,   $555CCCC  ),
  198.           (  $777DDDD,  $666CCCC,   $555BBBB  ));
  199.  
  200.   TA2 : array[1..9,1..3] of Word =
  201.          ((  $DDDD,  $EEEE,   $FFFF  ),
  202.           (  $DDDD,  $EEEE,   $EEEE  ),
  203.           (  $DDDD,  $EEEE,   $DDDD  ),
  204.           (  $DDDD,  $DDDD,   $EEEE  ),
  205.           (  $DDDD,  $DDDD,   $DDDD  ),
  206.           (  $DDDD,  $DDDD,   $CCCC  ),
  207.           (  $DDDD,  $CCCC,   $DDDD  ),
  208.           (  $DDDD,  $CCCC,   $CCCC  ),
  209.           (  $DDDD,  $CCCC,   $BBBB  ));
  210.  
  211.   TA2A : array[1..9,1..3] of Word =
  212.          ((  $DDD,  $EEE,   $FFF  ),
  213.           (  $DDD,  $EEE,   $EEE  ),
  214.           (  $DDD,  $EEE,   $DDD  ),
  215.           (  $DDD,  $DDD,   $EEE  ),
  216.           (  $DDD,  $DDD,   $DDD  ),
  217.           (  $DDD,  $DDD,   $CCC  ),
  218.           (  $DDD,  $CCC,   $DDD  ),
  219.           (  $DDD,  $CCC,   $CCC  ),
  220.           (  $DDD,  $CCC,   $BBB  ));
  221.  
  222.   TA1 : array[1..9,1..3] of Word =
  223.          ((  $DD,  $EE,   $FF  ),
  224.           (  $DD,  $EE,   $EE  ),
  225.           (  $DD,  $EE,   $DD  ),
  226.           (  $DD,  $DD,   $EE  ),
  227.           (  $DD,  $DD,   $DD  ),
  228.           (  $DD,  $DD,   $CC  ),
  229.           (  $DD,  $CC,   $DD  ),
  230.           (  $DD,  $CC,   $CC  ),
  231.           (  $DD,  $CC,   $BB  ));
  232.  
  233.   TA1A : array[1..9,1..3] of Word =
  234.          ((  $D,  $E,   $F  ),
  235.           (  $D,  $E,   $E  ),
  236.           (  $D,  $E,   $D  ),
  237.           (  $D,  $D,   $E  ),
  238.           (  $D,  $D,   $D  ),
  239.           (  $D,  $D,   $C  ),
  240.           (  $D,  $C,   $D  ),
  241.           (  $D,  $C,   $C  ),
  242.           (  $D,  $C,   $B  ));
  243.  
  244.  
  245. var
  246. s1,s2,s3  : shortint;
  247. b1,b2,b3  : byte;
  248. i1,i2,i3  : integer;
  249. w1,w2,w3  : word;
  250. l1,l2,l3  : longint;
  251. G1,G2,G3  : string;
  252.  
  253. LST,
  254. O         : text;
  255.  
  256. begin
  257.   if HandleIsConsole(1) then begin
  258.     Write('Set printer to max 12 char. per inch. Any key when ready...');
  259.     if ReadKeyWord = 0 then ;
  260.     if OpenStdDev(LST, 4) then ; {if output not redirected, write to printer}
  261.     end
  262.   else
  263.     if OpenStdDev(LST, 1) then ; {if output redirected, write to StdOut}
  264.   if OpenStdDev(O, 1) then ;     {in any case, write screen output to StdOut}
  265.  
  266.   WriteLn(LST,'':7,'UNSIGNED compare -- 4 byte');
  267.   for S1 := 1 to 81 do begin
  268.     if odd(S1) then Write(LST,'':7);
  269.     for S2 := 1 to 3 do
  270.       Write(LST, '$'+HexL(TA4[S1, S2]),' ');
  271.     Write(LST,BetwU(TA4[S1,1], TA4[S1,2], TA4[S1,3]):5,'':5);
  272.     if not odd(S1) then WriteLn(Lst);
  273.     end;
  274.   WriteLn(LST,^L);
  275.  
  276.   for S1 := 1 to 81 do begin
  277.     if odd(S1) then Write(LST,'':7);
  278.     for S2 := 1 to 3 do
  279.       Write(LST, '$'+HexL(TA4A[S1, S2]),' ');
  280.     Write(LST,BetwU(TA4A[S1,1], TA4A[S1,2], TA4A[S1,3]):5,'':5);
  281.     if not odd(S1) then WriteLn(Lst);
  282.     end;
  283.   WriteLn(LST,^L);
  284.  
  285.   WriteLn(LST,'':7,'SIGNED compare -- 4 byte');
  286.   for S1 := 1 to 81 do begin
  287.     if odd(S1) then Write(LST,'':7);
  288.     for S2 := 1 to 3 do
  289.       Write(LST, (TA4[S1, S2]):11,' ');
  290.     Write(LST,BetwS(TA4[S1,1], TA4[S1,2], TA4[S1,3]):5,'':2);
  291.     if not odd(S1) then WriteLn(Lst);
  292.     end;
  293.   WriteLn(LST,^L);
  294.  
  295.   for S1 := 1 to 81 do begin
  296.     if odd(S1) then Write(LST,'':7);
  297.     for S2 := 1 to 3 do
  298.       Write(LST, (TA4A[S1, S2]):11,' ');
  299.     Write(LST,BetwS(TA4A[S1,1], TA4A[S1,2], TA4A[S1,3]):5,'':2);
  300.     if not odd(S1) then WriteLn(Lst);
  301.     end;
  302.   WriteLn(LST,^L);
  303.  
  304.   WriteLn(LST,'':7,'UNSIGNED compare -- 2 byte');
  305.   for S1 := 1 to 9 do begin
  306.     if odd(S1) then Write(LST,'':7);
  307.     for S2 := 1 to 3 do
  308.       Write(LST, '$'+HexW(TA2[S1, S2]),' ');
  309.     Write(LST,BetwU(TA2[S1,1], TA2[S1,2], TA2[S1,3]):5,'':5);
  310.     if not odd(S1) then WriteLn(Lst);
  311.     end;
  312.   Write(LST,^M^J^J^J^J^J);
  313.  
  314.   for S1 := 1 to 9 do begin
  315.     if odd(S1) then Write(LST,'':7);
  316.     for S2 := 1 to 3 do
  317.       Write(LST, '$'+HexW(TA2A[S1, S2]),' ');
  318.     Write(LST,BetwU(TA2A[S1,1], TA2A[S1,2], TA2A[S1,3]):5,'':5);
  319.     if not odd(S1) then WriteLn(Lst);
  320.     end;
  321.   Write(LST,^M^J^J^J^J^J);
  322.  
  323.   WriteLn(LST,'':7,'SIGNED compare -- 2 byte');
  324.   for S1 := 1 to 9 do begin
  325.     if odd(S1) then Write(LST,'':7);
  326.     for S2 := 1 to 3 do
  327.       Write(LST, integer(TA2[S1, S2]):6,' ');
  328.     Write(LST,BetwS(TA2[S1,1], TA2[S1,2], TA2[S1,3]):5,'':5);
  329.     if not odd(S1) then WriteLn(Lst);
  330.     end;
  331.   Write(LST,^M^J^J^J^J^J);
  332.  
  333.   for S1 := 1 to 9 do begin
  334.     if odd(S1) then Write(LST,'':7);
  335.     for S2 := 1 to 3 do
  336.       Write(LST, integer(TA2A[S1, S2]):6,' ');
  337.     Write(LST,BetwS(TA2A[S1,1], TA2A[S1,2], TA2A[S1,3]):5,'':5);
  338.     if not odd(S1) then WriteLn(Lst);
  339.     end;
  340.   WriteLn(LST,^L);
  341.  
  342.   WriteLn(LST,'':7,'UNSIGNED compare -- 1 byte');
  343.   for S1 := 1 to 9 do begin
  344.     if odd(S1) then Write(LST,'':7);
  345.     for S2 := 1 to 3 do
  346.       Write(LST, '$'+HexB(TA1[S1, S2]),' ');
  347.     Write(LST,BetwU(TA1[S1,1], TA1[S1,2], TA1[S1,3]):5,'':5);
  348.     if not odd(S1) then WriteLn(Lst);
  349.     end;
  350.   Write(LST,^M^J^J^J^J^J);
  351.  
  352.   for S1 := 1 to 9 do begin
  353.     if odd(S1) then Write(LST,'':7);
  354.     for S2 := 1 to 3 do
  355.       Write(LST, '$'+HexB(TA1A[S1, S2]),' ');
  356.     Write(LST,BetwU(TA1A[S1,1], TA1A[S1,2], TA1A[S1,3]):5,'':5);
  357.     if not odd(S1) then WriteLn(Lst);
  358.     end;
  359.   Write(LST,^M^J^J^J^J^J);
  360.  
  361.   WriteLn(LST,'':7,'SIGNED compare -- 1 byte');
  362.   for S1 := 1 to 9 do begin
  363.     if odd(S1) then Write(LST,'':7);
  364.     for S2 := 1 to 3 do
  365.       Write(LST, ShortInt(TA1[S1, S2]):4,' ');
  366.     Write(LST,BetwS(TA1[S1,1], TA1[S1,2], TA1[S1,3]):5,'':5);
  367.     if not odd(S1) then WriteLn(Lst);
  368.     end;
  369.   Write(LST,^M^J^J^J^J^J);
  370.  
  371.   for S1 := 1 to 9 do begin
  372.     if odd(S1) then Write(LST,'':7);
  373.     for S2 := 1 to 3 do
  374.       Write(LST, ShortInt(TA1A[S1, S2]):4,' ');
  375.     Write(LST,BetwS(TA1A[S1,1], TA1A[S1,2], TA1A[S1,3]):5,'':5);
  376.     if not odd(S1) then WriteLn(Lst);
  377.     end;
  378.   if HandleIsConsole(1) then
  379.     Write(LST,^L);
  380.   Flush(O);
  381.   Flush(LST);
  382.   end; {BetwTest}
  383. end.
  384.